home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #047 (1990)(Amiga User Group Deutschland e.V.)[v Disaster Master 2].zip / Franz PD Disk #047 (1990)(Amiga User Group Deutschland e.V.)[v Disaster Master 2].adf / A68K_Beispiele / plane.asm < prev    next >
Assembly Source File  |  1989-07-02  |  16KB  |  675 lines

  1. ************************************************************************
  2. * This is the Red Baron of Germany. Snoopy's not around though.        *
  3. *                                                                      *
  4. * Seriously, this is a random walk on a three dimensional lattice.     *
  5. * The random walk is preformed by the climbing sine.                   *
  6. *                                                                      *
  7. * This implementation was written by:                                  *
  8. * E. Lenz                                                              *
  9. * Johann-Fichte-Strasse 11                                             *
  10. * 8 Munich 40                                                          *
  11. * Germany                                                              *
  12. *                                                                      *
  13. ************************************************************************
  14.  
  15.    XREF request
  16.  
  17. _AbsExecBase        equ 4
  18.  
  19. **** exec *****
  20.  
  21. _LVOForbid       equ -$84
  22. _LVOPermit       equ -$8a
  23. _LVOGetMsg       equ -$174
  24. _LVOReplyMsg     equ -$17a
  25. _LVOWaitPort     equ -$180
  26. _LVOCloseLibrary equ -$19e
  27. _LVOOpenLibrary  equ -$228
  28.  
  29. **** intuition ******
  30.  
  31. _LVOCloseWindow    equ -$48
  32. _LVOOpenWindow     equ -$cc
  33.  
  34. ***** graphics ******
  35.  
  36. _LVOMove            equ -$f0
  37. _LVODraw            equ -$f6
  38. _LVORectFill        equ -$132
  39. _LVOSetAPen         equ -$156
  40.  
  41. **** mathffp *****
  42.  
  43. _LVOSPFix       equ -$1e
  44. _LVOSPFlt       equ -$24
  45. _LVOSPAdd       equ -$42
  46. _LVOSPSub       equ -$48
  47. _LVOSPMul       equ -$4e
  48.  
  49. **** mathtrans ******
  50.  
  51. _LVOSPSin       equ -$24
  52. _LVOSPCos       equ -$2a
  53.  
  54. pr_MsgPort       equ $5c
  55. pr_CLI           equ $ac
  56. ThisTask         equ $114
  57. VBlankFrequency  equ $212
  58.  
  59. pi2   equ $c90fd943
  60. fif   equ $bb8ef340  .6
  61. dr    equ $80000040  .5
  62.  
  63.        code
  64.  
  65.        movea.l _AbsExecBase,a6   test if WB or CLI
  66.        movea.l ThisTask(a6),a0
  67.        tst.l   pr_CLI(a0)
  68.        bne.s   isCLI
  69.  
  70.        lea     pr_MsgPort(a0),a0 for WB get WB Message
  71.        jsr     _LVOWaitPort(a6)
  72.        jsr     _LVOGetMsg(a6)
  73.        move.l  d0,WBenchMsg
  74.  
  75. isCLI  cmpi.b  #60,VBlankFrequency(a6) check if PAL or NTSC
  76.        beq.s   isNTSC
  77.        move.w  #256,nw+6
  78.  
  79. isNTSC lea     GfxName(pc),a1        open graphics library
  80.        moveq   #0,d0
  81.        jsr     _LVOOpenLibrary(a6)
  82.        move.l  d0,GfxBase
  83.        beq.s   Gexit
  84.  
  85.        lea     FfpName(pc),a1        open mathffp library
  86.        moveq   #0,d0
  87.        jsr     _LVOOpenLibrary(a6)
  88.        move.l  d0,FfpBase
  89.        beq.s   Gexit
  90.  
  91.        lea     MTrName(pc),a1        open mathtrans library
  92.        moveq   #0,d0
  93.        jsr     _LVOOpenLibrary(a6)
  94.        move.l  d0,MTrans
  95.        bne.s   Tranok
  96.        lea     MTrName(pc),a0   first line
  97.        movem.l a4-a5,-(a7)
  98.        lea     notfnd(pc),a1     second line
  99.        suba.l  a2,a2             no third line
  100.        lea     hdtxt(pc),a3      header
  101.        lea     OkTxt(pc),a4      gadget text
  102.        suba.l  a5,a5             no 2nd gadget
  103.        jsr     request
  104.        movem.l (a7)+,a4-a5
  105. Gexit  bra.s   exit
  106.  
  107. Tranok lea     IntName(pc),a1        open intuition library
  108.        moveq   #0,d0
  109.        jsr     _LVOOpenLibrary(a6)
  110.        move.l  d0,IntBase
  111.        beq.s   Gexit
  112.  
  113.        lea     nw(pc),a0             open window
  114.        movea.l IntBase,a6
  115.        jsr     _LVOOpenWindow(a6)
  116.        move.l  d0,window
  117.        beq.s   Gexit
  118.       
  119.  
  120.        movea.l d0,a0
  121.        movea.l 50(a0),a5
  122.  
  123. next1  bsr     draw            draw aeroplane
  124.  
  125.        bsr.s   trycls
  126.        cmpi.l  #$200,d7
  127.        beq.s   exit
  128.  
  129.        bsr     walk
  130.        bra.s   next1
  131.  
  132.  
  133. exit   movea.l IntBase(pc),a6
  134.        move.l  window(pc),d0        close window
  135.        beq.s   noWin
  136.        movea.l d0,a0
  137.        jsr     _LVOCloseWindow(a6)
  138.  
  139. noWin  movea.l _AbsExecBase,a6
  140.        move.l   WBenchMsg(pc),d7
  141.        beq.s   NoBenh
  142.        jsr     _LVOForbid(a6)       reply to WB
  143.        movea.l d7,a1
  144.        jsr     _LVOReplyMsg(a6)
  145.        jsr     _LVOPermit(a6)
  146.  
  147. NoBenh move.l  IntBase(pc),d1       close intuition library
  148.        beq.s   noInt
  149.        movea.l d1,a1
  150.        jsr     _LVOCloseLibrary(a6)
  151.  
  152. noInt  move.l  MTrans(pc),d1        close mathtrans library
  153.        beq.s   noTran
  154.        movea.l d1,a1
  155.        jsr     _LVOCloseLibrary(a6)
  156.  
  157. noTran move.l  FfpBase(pc),d1       close mathffp library
  158.        beq.s   noFfp
  159.        movea.l d1,a1
  160.        jsr     _LVOCloseLibrary(a6)
  161.  
  162. noFfp  move.l  GfxBase(pc),d1       close graphics library
  163.        beq.s   noGfx
  164.        movea.l d1,a1
  165.        jsr     _LVOCloseLibrary(a6)
  166.  
  167. noGfx  moveq   #0,d0                no error
  168.        rts
  169.  
  170. trycls movem.l d0-d6/a0-a6,-(a7)
  171.        movea.l _AbsExecBase,a6
  172.        moveq   #0,d7
  173.        movea.l window(pc),a0
  174.        movea.l $56(a0),a0    load Window.UserPort
  175.        jsr     _LVOGetMsg(a6)
  176.        tst.l   d0
  177.        beq.s   noMsg1         No message
  178.  
  179.        movea.l d0,a1
  180.        move.l  $14(a1),d7       Message in d7
  181.        jsr     _LVOReplyMsg(a6) Always reply
  182.  
  183. noMsg1 movem.l (a7)+,d0-d6/a0-a6
  184. noMsg  tst.l   d7
  185.        rts
  186.  
  187. angle  move.l  d2,d0
  188.        jsr     _LVOSPSin(a6)
  189.        exg     d0,d2
  190.        jsr     _LVOSPCos(a6)
  191.        rts
  192.  
  193.  
  194. draw   movea.l MTrans(pc),a6    calculate angles
  195.        move.l  alpha(pc),d2
  196.        bsr.s   angle
  197.        move.l  d2,sa
  198.        move.l  d0,ca
  199.        move.l  beta(pc),d2
  200.        bsr.s   angle
  201.        move.l  d2,sb
  202.        move.l  d0,cb
  203.        move.l  gamma(pc),d2
  204.        bsr.s   angle
  205.        move.l  d2,sc
  206.        move.l  d0,cc
  207.  
  208.        move.l  #170,d7
  209.        lea     plane(pc),a2
  210.        lea     buffer(pc),a3
  211.  
  212. dlop   moveq   #0,d2
  213.        moveq   #0,d3
  214.        moveq   #0,d4
  215.        move.w  (a2)+,d2
  216.        ext.l   d2
  217.        move.w  (a2)+,d3
  218.        ext.l   d3
  219.        move.w  (a2)+,d4
  220.        ext.l   d4
  221.        bsr.s   persp        perspective
  222.  
  223.        add.l   #100,d4
  224.        add.l   #250,d3
  225.        move.l  d4,(a3)+
  226.        move.l  d3,(a3)+
  227.        dbra    d7,dlop
  228.  
  229.        movea.l GfxBase(pc),a6  clear screen
  230.        moveq   #0,d0
  231.        movea.l a5,a1
  232.        jsr     _LVOSetAPen(a6)
  233.  
  234.        movea.l a5,a1
  235.        moveq   #0,d0
  236.        moveq   #0,d1
  237.        move.l  #640,d2
  238.        move.l  #250,d3
  239.        jsr     _LVORectFill(a6)
  240.  
  241.        moveq   #3,d0
  242.        movea.l a5,a1
  243.        jsr     _LVOSetAPen(a6)
  244.  
  245.        lea     plot(pc),a3
  246.        lea     buffer(pc),a4
  247.        move.l  #170,d7
  248.        moveq   #1,d6
  249.  
  250. plop   move.l  (a4)+,d1
  251.        move.l  (a4)+,d0
  252.        movea.l a5,a1
  253.        subq.b  #1,d6
  254.        bne.s   nomove
  255.        jsr     _LVOMove(a6)
  256.        move.b  (a3)+,d6
  257.        bra.s   next
  258. nomove jsr     _LVODraw(a6)
  259. next   dbra    d7,plop
  260.        rts
  261.  
  262. persp  movem.l a2-a5,-(a7)
  263.        movea.l FfpBase(pc),a6
  264.  
  265.        move.l  d2,d0
  266.        jsr     _LVOSPFlt(a6)
  267.        move.l  d0,d2
  268.        move.l  d3,d0
  269.        jsr     _LVOSPFlt(a6)
  270.        move.l  d0,d3
  271.        move.l  d4,d0
  272.        jsr     _LVOSPFlt(a6)
  273.        move.l  d0,d4
  274.  
  275.        move.l  sa(pc),d1
  276.        jsr     _LVOSPMul(a6)
  277.        move.l  d0,d5
  278.        move.l  ca(pc),d0
  279.        move.l  d3,d1
  280.        jsr     _LVOSPMul(a6)
  281.        move.l  d5,d1
  282.        jsr     _LVOSPSub(a6)
  283.        exg     d0,d3           y = ca*y - sa*z
  284.  
  285.        move.l  sa(pc),d1
  286.        jsr     _LVOSPMul(a6)
  287.        exg     d0,d4
  288.        move.l  ca(pc),d1
  289.        jsr     _LVOSPMul(a6)
  290.        move.l  d4,d1
  291.        jsr     _LVOSPAdd(a6)
  292.        move.l  d0,d4          z = sa*y + ca*z
  293.  
  294.        move.l  sa(pc),d0
  295.        move.l  d4,d1
  296.        jsr     _LVOSPMul(a6)
  297.        move.l  d0,d5
  298.        move.l  cb(pc),d0
  299.        move.l  d2,d1
  300.        jsr     _LVOSPMul(a6)
  301.        move.l  d5,d1
  302.        jsr     _LVOSPSub(a6)
  303.        exg     d0,d2          x = cb*x - sb*z
  304.  
  305.        move.l  sb(pc),d1
  306.        jsr     _LVOSPMul(a6)
  307.        move.l  d0,d5
  308.        move.l  cb(pc),d0
  309.        move.l  d4,d1
  310.        jsr     _LVOSPMul(a6)
  311.        move.l  d5,d1
  312.        jsr     _LVOSPAdd(a6)
  313.        move.l  d0,d4         z = sb*x + cb*z
  314.  
  315.        move.l  sc(pc),d0
  316.        move.l  d3,d1
  317.        jsr     _LVOSPMul(a6)
  318.        move.l  d0,d5
  319.        move.l  cc(pc),d0
  320.        move.l  d2,d1
  321.        jsr     _LVOSPMul(a6)
  322.        move.l  d5,d1
  323.        jsr     _LVOSPSub(a6)
  324.        exg     d0,d2         x = cc*x - sc*y
  325.  
  326.        move.l  sc(pc),d1
  327.        jsr     _LVOSPMul(a6)
  328.        move.l  d0,d5
  329.        move.l  cc(pc),d0
  330.        move.l  d3,d1
  331.        jsr     _LVOSPMul(a6)
  332.        move.l  d5,d1
  333.        jsr     _LVOSPAdd(a6)
  334.        move.l  d0,d3         y = sc*x + cc*y
  335.  
  336.        move.l  d2,d0
  337.        jsr     _LVOSPFix(a6)
  338.        move.l  d0,d2
  339.        move.l  d3,d0
  340.        jsr     _LVOSPFix(a6)
  341.        move.l  d0,d3
  342.        move.l  d4,d0
  343.        jsr     _LVOSPFix(a6)
  344.        move.l  d0,d4
  345.      
  346.        movem.l (a7)+,a2-a5
  347.        rts
  348.  
  349. csine  movea.l FfpBase(pc),a6
  350.        move.l  #pi2,d1
  351.        move.l  d2,d0
  352.        jsr     _LVOSPMul(a6)
  353.        movea.l MTrans(pc),a6
  354.        jsr     _LVOSPSin(a6)
  355.        movea.l FfpBase(pc),a6
  356.        move.l  d7,d1
  357.        jsr     _LVOSPMul(a6)
  358.        move.l  d2,d1
  359.        jsr     _LVOSPAdd(a6)
  360.        rts
  361.  
  362.  
  363. walk   move.l  #fif,d7
  364.        move.l  alpha(pc),d2
  365.        bsr.s   csine
  366.        move.l  d0,alpha
  367.        move.l  beta(pc),d2
  368.        bsr.s   csine
  369.        move.l  d0,beta
  370.        move.l  gamma(pc),d2
  371.        bsr.s   csine
  372.        move.l  d0,gamma
  373.        move.l  #dr,d2
  374.        move.l  vx(pc),d3
  375.        move.l  alpha(pc),d0
  376.        bsr.s   step
  377.        move.l  d0,vx
  378.        move.l  vy(pc),d3
  379.        move.l  beta(pc),d0
  380.        bsr.s   step
  381.        move.l  d0,vy
  382.        move.l  vz(pc),d3
  383.        move.l  gamma(pc),d0
  384.        bsr.s   step
  385.        move.l  d0,vz
  386.        rts
  387.  
  388. step   movea.l MTrans(pc),a6
  389.        jsr     _LVOSPCos(a6)
  390.        movea.l FfpBase(pc),a6
  391.        move.l  d2,d1
  392.        jsr     _LVOSPMul(a6)
  393.        move.l  d3,d1
  394.        jsr     _LVOSPAdd(a6)
  395.        rts
  396.  
  397. ; angles
  398.  
  399. alpha  dc.l $c90fd942
  400. beta   dc.l pi2
  401. gamma  dc.l pi2
  402.  
  403. ; cosines
  404.  
  405. ca     dc.l 0
  406. cb     dc.l 0
  407. cc     dc.l 0
  408.  
  409. ; sines
  410.  
  411. sa     dc.l 0
  412. sb     dc.l 0
  413. sc     dc.l 0
  414.  
  415. ; displacement
  416.  
  417. vx     dc.l $80000042
  418. vy     dc.l $80000042
  419. vz     dc.l $80000042
  420.  
  421. buffer ds.l 171*2
  422.  
  423. plot   dc.b 13,7,7,4,4,9,11,14,7,7,3,3
  424.        dc.b 4,5,4,6,14,9,7,13,10,9
  425.        even
  426.  
  427. ; aeroplane coordinates
  428.  
  429. ; upper wing
  430.  
  431. plane       dc.w 20,0,0
  432.             dc.w 130,0,0
  433.             dc.w 140,50,0
  434.             dc.w 130,60,0
  435.             dc.w -130,60,0
  436.             dc.w -140,50,0
  437.             dc.w -130,0,0
  438.             dc.w -20,0,0
  439.             dc.w -10,15,0
  440.             dc.w 10,15,0
  441.             dc.w 20,0,0
  442.             dc.w 10,15,0
  443.             dc.w -10,15,0
  444.  
  445. ; lower right wing (from top)
  446.  
  447.             dc.w 10,60,-55
  448.             dc.w 10,50,-55
  449.             dc.w 10,-10,-55
  450.             dc.w 100,-10,-55
  451.             dc.w 110,40,-55
  452.             dc.w 100,50,-55
  453.             dc.w 10,50,-55
  454.  
  455. ; lower left wing (from top)
  456.  
  457.             dc.w -10,50,-55
  458.             dc.w -100,50,-55
  459.             dc.w -110,40,-55
  460.             dc.w -100,-10,-55
  461.             dc.w -10,-10,-55
  462.             dc.w -10,50,-55
  463.             dc.w -10,60,-55
  464.  
  465. ; the wing supports
  466.  
  467.             dc.w -82,10,0
  468.             dc.w -80,0,-55
  469.             dc.w -90,50,0
  470.             dc.w -88,40,-55
  471.             dc.w 82,10,0
  472.             dc.w 80,0,-55
  473.             dc.w 90,50,0
  474.             dc.w 88,40,-55
  475.  
  476. ; the nose of the plane
  477.  
  478.             dc.w 0,90,-35
  479.             dc.w 0,80,-30
  480.             dc.w -5,80,-35
  481.             dc.w 0,80,-40
  482.             dc.w 5,80,-35
  483.             dc.w 0,90,-35
  484.             dc.w 0,80,-40
  485.             dc.w 5,80,-35
  486.             dc.w 0,80,-30
  487.             dc.w 0,-140,-45
  488.             dc.w 15,-30,-45
  489.             dc.w 15,60,-45
  490.             dc.w 10,60,-55
  491.             dc.w -10,60,-55
  492.             dc.w -15,60,-45
  493.             dc.w -15,60,-25
  494.             dc.w 0,60,-15
  495.             dc.w 15,60,-25
  496.             dc.w 10,80,-25
  497.             dc.w 0,60,-15
  498.             dc.w 10,80,-25
  499.             dc.w 15,60,-25
  500.             dc.w 15,60,-45
  501.             dc.w 10,80,-45
  502.             dc.w -10,80,-45
  503.             dc.w -10,60,-55
  504.             dc.w -15,60,-45
  505.             dc.w -10,80,-45
  506.             dc.w -10,80,-25
  507.             dc.w -15,60,-25
  508.             dc.w -10,80,-25
  509.             dc.w 10,80,-25
  510.             dc.w 10,80,-45
  511.             dc.w 10,60,-55
  512.  
  513. ; wheels
  514.  
  515.             dc.w 35,60,-75
  516.             dc.w 35,70,-80
  517.             dc.w 35,70,-90
  518.             dc.w 35,60,-95
  519.             dc.w 35,50,-90
  520.             dc.w 35,50,-80
  521.             dc.w 35,60,-75
  522.             dc.w -35,60,-75
  523.             dc.w -35,70,-80
  524.             dc.w -35,70,-90
  525.             dc.w -35,60,-95
  526.             dc.w -35,50,-90
  527.             dc.w -35,50,-80
  528.             dc.w -35,60,-75
  529.             dc.w 10,-25,-20
  530.             dc.w 0,-25,-15
  531.             dc.w -10,-25,-20
  532.             dc.w -10,60,-55
  533.             dc.w -10,50,-55
  534.             dc.w 10,60,-55
  535.  
  536.  
  537. ; the body of the plane
  538.  
  539.             dc.w 15,60,-25
  540.             dc.w 15,-30,-25
  541.             dc.w 0,-140,-35
  542.             dc.w 5,-100,-35
  543.             dc.w 15,60,-45
  544.             dc.w 15,-30,-45
  545.             dc.w 0,-140,-45
  546.             dc.w -15,-30,-45
  547.             dc.w -15,60,-45
  548.             dc.w 10,-25,-20
  549.             dc.w 0,-140,-35
  550.             dc.w 0,-140,-45
  551.             dc.w 10,-10,-55
  552.             dc.w 15,-30,-45
  553.             dc.w 0,-140,-45
  554.             dc.w -10,-10,-55
  555.             dc.w 0,-140,-45
  556.             dc.w 0,-140,-35
  557.             dc.w -5,-100,-35
  558.             dc.w 5,-100,-35
  559.             dc.w 60,-120,-35
  560.             dc.w 60,-130,-35
  561.             dc.w 60,-140,-35
  562.             dc.w 50,-150,-35
  563.             dc.w 20,-150,-35
  564.             dc.w 2,-130,-35
  565.             dc.w -2,-130,-35
  566.             dc.w -20,-150,-35
  567.             dc.w -50,-150,-35
  568.             dc.w -60,-140,-35
  569.             dc.w -60,-130,-35
  570.             dc.w -60,-120,-35
  571.             dc.w -5,-100,-35
  572.             dc.w 0,-140,-35
  573.             dc.w 0,-100,-30
  574.             dc.w 0,-120,-5
  575.             dc.w 0,-140,0
  576.             dc.w 0,-140,-35
  577.             dc.w 0,-140,-45
  578.             dc.w 0,-155,-25
  579.             dc.w 0,-155,-5
  580.             dc.w 0,-140,0
  581.             dc.w 0,-25,-15
  582.             dc.w 0,-140,-35
  583.             dc.w -15,-30,-25
  584.             dc.w -15,60,-25
  585.             dc.w -15,60,-45
  586.             dc.w -15,-30,-45
  587.             dc.w 0,-140,-45
  588.             dc.w -10,85,5
  589.             dc.w -30,85,-5
  590.             dc.w -40,85,-25
  591.             dc.w -40,85,-45
  592.             dc.w -30,85,-65
  593.             dc.w -10,85,-75
  594.             dc.w 10,85,-75
  595.             dc.w 30,85,-65
  596.             dc.w 40,85,-45
  597.             dc.w 40,85,-25
  598.             dc.w 30,85,-5
  599.             dc.w 10,85,5
  600.             dc.w -10,85,5
  601.             dc.w 10,60,-55
  602.             dc.w 30,60,-85
  603.             dc.w 10,30,-55
  604.             dc.w 30,60,-85
  605.             dc.w 40,60,-85
  606.             dc.w -40,60,-85
  607.             dc.w -30,60,-85
  608.             dc.w -10,30,-55
  609.             dc.w -30,60,-85
  610.             dc.w -10,60,-55
  611.             dc.w 0,60,-15
  612.             dc.w 0,0,-15
  613.             dc.w 15,-10,-20
  614.             dc.w 15,-20,-20
  615.             dc.w 10,-25,-20
  616.             dc.w -10,-25,-20
  617.             dc.w -15,-20,-20
  618.             dc.w -15,-10,-20
  619.             dc.w 0,0,-15
  620.  
  621.  
  622. WBenchMsg   dc.l 0
  623. MTrans      dc.l 0
  624. FfpBase     dc.l 0
  625. DosBase     dc.l 0
  626. GfxBase     dc.l 0
  627. IntBase     dc.l 0
  628.  
  629. window      dc.l 0
  630.  
  631. MTrName     dc.b 'mathtrans.library',0
  632.             even
  633.  
  634. FfpName     dc.b 'mathffp.library',0
  635.             even
  636.  
  637. DosName     dc.b 'dos.library',0
  638.             even
  639.  
  640. GfxName     dc.b 'graphics.library',0
  641.             even
  642.  
  643. IntName     dc.b 'intuition.library',0
  644.             even
  645.  
  646. title       dc.b  'aeroplane',0
  647.             even
  648.  
  649. ; requester texts
  650.  
  651. notfnd      dc.b ' not found',0
  652. hdtxt       dc.b ' Plane Request',0
  653. OkTxt       dc.b ' OK',0
  654.             even
  655.  
  656. ***** Window definition *****
  657.  
  658. nw          dc.w 0,0         Position left,top
  659.             dc.w 640,199     Size width,height
  660.             dc.b 0,1         Colors detail-,block pen
  661.             dc.l $200        IDCMP-Flags
  662.             dc.l $144f       Window flags
  663.             dc.l 0           ^Gadget
  664.             dc.l 0           ^Menu check
  665.             dc.l title       ^Window name
  666. nws         dc.l 0           ^Screen structure,
  667.             dc.l 0           ^BitMap
  668.             dc.w 100         MinWidth
  669.             dc.w 40          MinHeight
  670.             dc.w -1          MaxWidth
  671.             dc.w -1,1        MaxHeight,Screen type
  672.  
  673.             end
  674.  
  675.